In the animated film classic "Steamship Willie", which introduced an animated character called "Mickey Mouse" to the entertainment world, Walt Disney relied upon a team of illustrators to hand draw the thousands of animation cells required to create an animated feature film. Although the creation of an animation sequence remains a time-consuming, detailed artistic practice, animation techniques have advanced from hand-drawn animation cells to computer-generated renderings. These computer-supported animation techniques are commonly used by artists to create animated sequences for movies, television programs, computer programs, and video games.
Computer programs are available to address the animation of an object based on the use of an animation table. An animation table typically contains a list of delays, positions, and bitmaps. Based on the entries in the animation table, an animation is completed by drawing the correct bitmap at a specified screen location after a predetermined delay has occurred. For example, to generate a relatively simple animated activity of an object "walking" between a start and an end position, an animation table contains multiple entries specifying the placement and timing of bitmaps representing the images of leg movement. Each entry dictates drawing a particular walking position at a specified time interval to capture the desired animation of a walking object.
An animation table can be viewed as a "hard-coded" animation technique because the animation is restricted to the precise limitations set forth by the entries in the table. The object will be animated in the manner dictated by the animation table, without deviation, because the table entries lack the flexibility offered by a control logic mechanism. In a table-driven animation system, each position and time for drawing the object must be specified prior to the animation. Thus, the conventional animation table can be viewed as a menu of graphical images, specified by a combination of bitmaps, screen locations and timing entries, which effectively limits the field of possible animation options.
Animation accomplished by the use of animation tables can be difficult for applications requiring an animated object to react to other objects within its environment. For example, it can be a difficult task to synchronize the interaction of objects by the use of a single animation table. Synchronization is typically accomplished by developing multiple tables, each specifying a particular action, which must be executed in a predetermined manner. For complex multi-media applications, this synchronization task is further complicated by a need to link the animation of interactive objects with sounds.
In view of the foregoing, there is a need for computer-implemented system for generating an interactive animation that allows an animated object to respond to events within the animation environment, including other objects, user-generated events, and system-level events. The present invention provides a flexible animation system for encoding an interactive animation by combining conventional animation information, such as delay, position, and image, with logic to control the animation.